package physgin;

/**
 * An interface for all Backgrounds to implement.
 * Specifies two required methods, and is Generic
 * on A and B with A being the reference for
 * the image (for example a String) and B being 
 * a version for use in the graphics library
 */
interface Background<A,B> {
    
    /**
     * Loads the specifed image into the object.
     *
     * @param   s   An image of type A.
     * @return      void
     */
    void setBackground(A s);
    
    /**
     * Returns the background in a way that is useful to
     * the graphics library, as an object of type B.
     *
     * @return  B   The background in as a graphics library object.
     */
    B getObject();
}
